package org.tea.application.common;

import org.cef.network.CefCookie;

import java.util.Date;

/**
 * 用于描述 Cookie 的统一接口
 *
 * @author lxh
 */
public interface CookieProp {

    /**
     * @return cookie 属性的名称
     */
    String name();

    /**
     * @return cookie 属性的实际值
     */
    String value();

    /**
     * @return 当前 cookie 所在域
     */
    String domain();

    /**
     * @return cookie 有效路径
     */
    String path();

    boolean secure();

    boolean httpOnly();

    Date createTime();

    Date lastAccessTime();

    boolean hasExpires();

    /**
     * @return 该 cookie 预计到期时间
     */
    Date expireDate();

    default CefCookie convertToCefCookie() {
        return new CefCookie(
                name(), value(), domain(), path(), secure(),
                httpOnly(), createTime(), lastAccessTime(), hasExpires(),
                expireDate()
        );
    }
}
